﻿using Microsoft.Extensions.DependencyInjection;
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;

namespace StudentManagement
{
    /// <summary>
    /// .net core服务容器
    /// </summary>
    public static class ServiceLocator
    {
        /// <summary>
        /// 服务提供者。
        /// 注意：只能获取AddTransient和AddSingleton注入的对象。
        /// </summary>
        public static ServiceProvider Instance { get; set; }

        /// <summary>
        /// 从已经注入的实例中获取窗口实例。
        /// </summary>
        /// <typeparam name="T">需要获取的窗口实例类型</typeparam>
        /// <returns></returns>
        public static T GetWindow<T>() where T : Window
        {
            return Instance.GetRequiredService<T>();
        }
    }
}
